home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
C/C++ Users Group Library 1996 July
/
C-C++ Users Group Library July 1996.iso
/
listings
/
v_12_06
/
allison
/
hi_lo.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-04-08
|
2KB
|
85 lines
LISTING 2 - A C program to play HI-LO
/* The game of HI-LO - your number in 7 guesses */
#include <stdio.h>
#include <ctype.h>
main()
{
int done = 0; /* Control flag */
puts("Think of a number between 1 and 100.");
puts("If you don't cheat, I'll figure it out");
puts("in seven guesses or less!\n");
while (!done)
{
int found = 0; /* Control Flag */
int lo = 1, hi = 100;
int guess;
char response;
/* Play the Game */
while (!found && lo <= hi)
{
/* Get response */
guess = (lo + hi) / 2;
printf("Is it %d (L/H/Y): ",guess);
fflush(stdout);
scanf("%c%*c",&response);
response = toupper(response);
/* Narrow the search range */
if (response == 'L')
lo = guess + 1;
else if (response == 'H')
hi = guess - 1;
else if (response != 'Y')
puts("What? Try again...");
else
found = 1;
}
/* Print results */
if (lo > hi)
puts("You cheated!");
else
{
printf("Your number was %d\n",guess);
puts("What fun!");
}
printf("Wanna play again? ");
fflush(stdout);
scanf("%c%*c",&response);
if (toupper(response) != 'Y')
done = 1;
}
return 0;
}
/* Sample Execution (numbers are 37 and 99)
c:>hi-lo
Think of a number bewteen 1 and 100.
If you don't cheat, I'll figure it out
in seven guesses or less!
Is it 50 (L/H/Y): h
Is it 25 (L/H/Y): l
Is it 37 (L/H/Y): y
Your number was 37
What fun!
Wanna play again? y
Is it 50 (L/H/Y): l
Is it 75 (L/H/Y): l
Is it 88 (L/H/Y): l
Is it 94 (L/H/Y): l
Is it 97 (L/H/Y): l
Is it 99 (L/H/Y): l
Is it 100 (L/H/Y): h
You cheated!
Wanna play again? n
*/